home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 001a / nsyscnvt.zip / NSYSCNVT.PAS < prev   
Pascal/Delphi Source File  |  1991-10-21  |  4KB  |  182 lines

  1. Program NanetSysConvert;
  2.  
  3. { Program Written 10/8/91 by Reuben Sumner
  4. Copyright 1991 By Reuben Sumner
  5.  
  6. The following program and source code can be distributed and used freely }
  7.  
  8. Uses
  9.     Dos;
  10.  
  11. Type
  12.     brates = (b300,b1200,b2400,b4800,b9600,b19200,b38400,b57600,b115200);
  13.     ddf_header = Record
  14.                     id : LongInt;                { Should be $2E2B291A }
  15.                     ddf_ver : Integer;            { 1 }
  16.                     num_entries : Integer;        { 1 to 1000 }
  17.                     pencrypted : Byte;            { 0 }
  18.                     spare : string[54];            { total size 64 bytes }
  19.                 End;
  20.     dd_entry = Record
  21.                     Name : Array [1..25] of Char;
  22.                     Number : Array [1..17] of Char;
  23.                     Baud : brates;
  24.                     Parity,                        { 0 = N 1 = E 2 = O }
  25.                     Data,                        { 7 or 8 }
  26.                     Stop : Byte;                { 1 or 2 }
  27.                     Script : Array [1..12] of Char;
  28.                     LastCall : Array [1..6] of Char;
  29.                     TotCalls : Word;
  30.                     Terminal : Byte;
  31.                     Protocol : Char;
  32.                     Toggles : Byte;             { 0 }
  33.                     Filler1, Filler2 : Byte;
  34.                     DPrefNum : Byte;            { Dialing Prefix }
  35.                     Password : Array [1..14] of Char;
  36.                 End;
  37.  
  38. Var
  39.     LocalArea : String[3];
  40.     LocalOnly : Boolean;
  41.     FonName : PathStr;
  42.     NSysName : PathStr;
  43.     Baud : brates;
  44.  
  45. Procedure Welcome;
  46.  
  47. Begin
  48.     WriteLn ('NANET.SYS ---> TELIX.FON Converter');
  49.     WriteLn ('Copyright 1991 By Reuben Sumner');
  50. End;
  51.  
  52. Procedure GetUserData;
  53.  
  54. Function FExist (name : PathStr) : Boolean;
  55.  
  56. Var
  57.     f : File;
  58.  
  59. Begin
  60.     Assign (f,name);
  61.     {$I-}
  62.     Reset (f);
  63.     {$I+}
  64.     If IOResult <> 0 Then FExist := False
  65.     Else Begin
  66.         Close (f);
  67.         FExist := True;
  68.     End;
  69. End;
  70.  
  71. Var
  72.     Line : String;
  73.     Ok : Boolean;
  74.  
  75. Begin
  76.     WriteLn;
  77.     Ok := True;
  78.     Repeat
  79.         Write ('Please input NANET.SYS filename: [NANET.SYS] ');
  80.         ReadLn (Line);
  81.         If Line = '' Then Line := 'NANET.SYS';
  82.         If Not FExist (Line) Then Begin
  83.             Ok := False;
  84.             WriteLn ('Error could not open file, please reenter');
  85.         End;
  86.     Until Ok;
  87.     NSysName := Line;
  88.  
  89.     Write ('Please input TELIX.FON filename: [TELIX.FON] ');
  90.     ReadLn (Line);
  91.     If Line = '' Then FonName := 'TELIX.FON'
  92.     Else FonName := Line;
  93.  
  94.     Write ('Enter local area code:  ');
  95.     ReadLn (LocalArea);
  96.  
  97.     Write ('Should local phone numbers ONLY be included? (Y/N): [N]  ');
  98.     ReadLn (Line);
  99.     If (UpCase (Line[1]) = 'Y') Then LocalOnly := True
  100.     Else LocalOnly := False;
  101.  
  102.     Write ('Enter choice of baud rate:  ');
  103.     ReadLn (Line);
  104.  
  105.     If Line = '300' Then Baud := b300
  106.     Else If Line = '1200' Then Baud := b1200
  107.     Else If Line = '2400' Then Baud := b2400
  108.     Else If Line = '4800' Then Baud := b4800
  109.     Else If Line = '9600' Then Baud := b9600
  110.     Else If Line = '19200' Then Baud := b19200
  111.     Else If Line = '38400' Then Baud := b38400
  112.     Else Begin
  113.         WriteLn ('Unregognized baud rate, assuming 2400');
  114.         Baud := b2400;
  115.     End;
  116. End;
  117.  
  118. Procedure ConvertNSys;
  119.  
  120. Var
  121.     sys : text;
  122.     fon : file;
  123.     h : ddf_header;
  124.     Entry : dd_entry;
  125.     Line : String;
  126.  
  127. Begin
  128.     FillChar (Entry,SizeOf(Entry),0);
  129.     Entry.Baud := Baud;
  130. {    Entry.Parity := 0;}
  131.     Entry.Data := 8;
  132.     Entry.Stop := 1;
  133. {    Entry.Script[1] := #0;}
  134. {    Entry.LastCall[1] := #0;}
  135. {    Entry.TotCalls := 0;}
  136.     Entry.Terminal := 1;
  137.     Entry.Protocol := 'Z';
  138. {    Entry.Toggles := 0;}
  139.     Entry.DPrefNum := 1;
  140. {    Entry.Password[1] := #0;}
  141.     h.id := $2E2B291A;
  142.     h.ddf_ver := 1;
  143.     h.pencrypted := 0;
  144.     h.num_entries := 0;
  145.  
  146.     Assign (fon,FonName);
  147.     Assign (sys,NSysName);
  148.     Reset (sys);
  149.     Rewrite (fon,1);
  150.  
  151.     BlockWrite (fon,h,sizeof(h));
  152.  
  153.     While Not (Eof (sys)) Do Begin
  154.         ReadLn (sys,Line);
  155.         If (Line[46] = '-') and (Length(Line) > 10) Then Begin
  156.             Move (Line[1],Entry.Name,22);
  157.             Entry.Name[23] := #0;
  158.             Inc (h.num_entries);
  159.             If Copy (Line, 43, 3) = LocalArea Then Begin
  160.                 Move (Line [47], Entry.Number, 8);
  161.                 Entry.Number[9] := #0;
  162.                 BlockWrite (fon,Entry,SizeOf (Entry));
  163.             End Else If Not LocalOnly Then Begin
  164.                 Entry.Number[1] := '1';
  165.                 Entry.Number[2] := '-';
  166.                 Move (Line[43],Entry.Number[3],12);
  167.                 Entry.Number[15] := #0;
  168.                 BlockWrite (fon,Entry,SizeOf (Entry));
  169.             End Else Dec (h.num_entries);
  170.         End;
  171.     End;
  172.     Seek (fon,0);
  173.     BlockWrite (fon,h,SizeOf (h));
  174.     Close (fon);
  175.     Close (sys);
  176. End;
  177.  
  178. Begin
  179.     Welcome;
  180.     GetUserData;
  181.     ConvertNSys;
  182. End.